专利摘要:
クライアントから受信したファイルなどの情報は、連想ストレージ装置などのストレージ装置内に保存されている。ファイルサーバはクライアントからデータを受信し、データを複数のデータのブロックの塊にする。ファイルサーバは、データ構造を構成するときに使用するためにメタデータも生成する。複数のデータのブロックは、ブロックストアに保存され、複数のデータブロックとメタデータのコピーは、ファイルサーバにローカルにキャッシュされている。コミットサーバはメタデータを検索する。少なくとも1つの実施形態において、メタデータは、ファイルサーバとコミットサーバとの間で共有されている更新ログから検索される。検索されたメタデータに基づいて、コミットサーバはデータ構造のバージョンを生成する。それからデータ構造はブロックストアに保存される。
公开号:JP2011513853A
申请号:JP2010549626
申请日:2008-03-17
公开日:2011-04-28
发明作者:ベンジャミン アトキン、;クリスチャン アングレアーヌ、;グルゼゴルツ カルコウスキ、;セザリー ダブニッキ、
申请人:エヌイーシー ラボラトリーズ アメリカ インクNEC Laboratories America, Inc.;
IPC主号:G06F12-00
专利说明:

[0001] 本発明は、一般に、連想ストレージに関し、特に、連想ストレージシステム内のデータへの改善されたアクセスに関する。]
背景技術

[0002] 大量のデータの保存は、ビジネスにとって重大である。ビジネスアプリケーションの中でも特にファイルシステムは、バックアップしなければならず、大量のレコードは、法的な要求事項を満たすように保持しなければならず、データの大量の集合は保存しなければならない。この重要なデータは、ハードウェア障害に対して早く回復できるように、保存しなければならない。これらのデータの集まりの各々の特定の要求に対応しているさまざまな装置が採用されている。]
[0003] 以前には、連想ストレージ(CAS)が、高容量ストレージ装置の構築に使用されてきた。CAS装置は、データブロックの内容にハッシュ関数を適用することによって、データのブロックに対してアドレスを生成する。これによって、CAS装置がデータブロックの1つのコピーを保存するだけでよいように、データブロックの複製コピーを容易に特定することができる。ストレージの要件を少なくすることによって、CAS装置を高容量ストレージに役立つようにすることができる。]
発明が解決しようとする課題

[0004] しかし、CASは、不変のオブジェクトを通常保存するため、CASは、無閉路有向グラフ(DAG)内に編成されているデータの書き込みだけが可能である。つまり、親ブロックが子ブロック(のたとえばアドレス)をいったん指すと、子ブロックは親ブロックを指すことはできない。子が多くの親から指されている共有の側面を無視すると、これらのDAGは、非公式には「木」と呼ぶことができる。保存されたデータを修正可能にする(例えば、ファイルを上書きできるようにする)ストレージ装置を実装するためにCASを使用するには、2つの重要な課題がある。(1)ストレージをどのようにして効果的に利用するか(たとえば、変化しているデータ/リーフ/子ブロックの集合を指す親ブロックの使用を最小化する)と、(2)より高い性能を実現するために、木の異なる部分の並列の修正(例えば過度のロックを避けること)をどのようにして実現するかである。それゆえに、連想ストレージ装置内でのデータの保存と検索の改良された装置と方法とが必要になる。]
課題を解決するための手段

[0005] 本発明は、一般に、下位の連想ストレージを使用して情報を効率的に保存する装置と方法とを提供する。クライアントから受信したファイルなどの情報は、連想ストレージ装置などのストレージ装置内に保存されている。ファイルサーバは、クライアントから、データを受信する(例えばデータをファイルに追加する)、および/または、ファイルの作成や削除などのメタデータ操作を受信する。データは、ブロックストアのデータブロックストレージに保存される複数のデータブロックに、グループ分けされる。データ書き込み操作によってファイルシステムメタデータが修正されるので、コミットサーバは、新しいメタデータを反映した新しいツリーを書き込むために使用される。少なくとも1つの実施態様では、ファイルサーバは、コミットサーバが実行しなければならない操作を、更新ログに記録する。更新ログは、コミットサーバによって取得され、更新ログ内に記述されている操作は、ファイルシステムの現在のイメージに適用され、データブロックストアに書き込まれる新しいメタデータブロック(例えば新しいファイルシステムバージョンを有する)となる。更新ログの各操作は、コミットサーバに操作を適用しなければならない順番を示すだけでなく、サーバがそのキャッシュされたデータをクリーン化プロセスを通してクリーン化できるようにするために使用されるタイムスタンプに、関連付けられている。]
[0006] 少なくとも1つの実施態様において、木の最新のバージョンは、ファイルサーバにキャッシュされているローカルデータとメタデータとを更新するために使用される。ファイルサーバは、木に対する最新の更新(たとえば、更新ログの最後の適用された操作)を示しているタイムスタンプに関連付けられている木のルートブロック(たとえば、スーパーブロック)を検索する。ストレージ木の最新のバージョンのルートブロックのタイムスタンプに基づいて、メタデータキャッシュ内のメタデータオブジェクトの古いバージョンが破棄され、実施態様によっては、ブロックストアの木の更新されたバージョンによって置き換えられる。]
[0007] 本発明のこれらの、そしてその他の利点は、以下の詳細な説明と添付の図面とを参照することによって、当業者に対して明らかになろう。]
図面の簡単な説明

[0008] 本発明の実施形態のストレージ装置の図である。
本発明の実施形態のファイルシステムの図である。
ストレージ装置に情報を保存する方法のフローチャートである。
本発明の実施形態の典型的なメタデータツリーの図である。
ファイルサーバでメタデータを保持する方法のフローチャートである。]
実施例

[0009] 従来の連想ストレージ装置(CAS)をファイルシステムフロントエンド(例えばデータ入力)と組み合わせることによって、データが効率的にそして障害から早く回復されるように保存されている大きなファイルの高スループットの読み書きが可能になる。図1は、そのような組み合わせの実施形態を示している。ストレージ装置100は、下位のCASをブロックストア106として使用して構築されている。ストレージ装置100は、データの受信、作成、および/または修正(たとえばファイルへの書き込み)またはメタデータ操作(たとえば、新しいファイルのディレクトリへの挿入、ファイルに対する権限の変更など)が可能なファイルサーバ102などのインターフェイスを有している。ファイルサーバ102のデータは、ブロックストア106に書き込まれる。コミットサーバ112は、ファイルサーバから受信した操作を適用し、ファイルシステムメタデータを表しているデータブロックを、ファイルサーバ102インターフェイスとは独立に、またそれを考慮することなく、ブロックストア106に書き込むために使用される。このように、ストレージへのファイルサーバ102によるデータの書き込みとコミットサーバ112によるストレージへのメタデータの書き込みとは、非同期に実行され、効率的な高スループットの大きなファイルの読み書きを促進する。] 図1
[0010] 図1は本発明の実施形態のストレージ装置100の図である。ストレージ装置100は、クライアント104からデータ操作(ファイル書き込み、ファイル読み取り等)とメタデータ操作(例えばファイルの削除など)とを受信し、かつ、受信したデータをブロックストア106に保存される複数のデータブロックの塊にし、かつ、メタデータに適用される複数の操作の一覧をコミットサーバ112に送信する、ファイルサーバ102を有している。ブロックストア106は、複数のデータブロックを保存し、そのうちいくつかは、他の複数のデータブロックを指していることがあり、図2を参照して以降でさらに詳細に説明するファイルシステム108に編成されることができる。ブロックストア106は、コミットサーバ112がファイルシステム108を生成するために適用しなければならない操作を含んでいるログを保存する更新ログ110を、さらに有している。メタデータは、ファイルの内容ではない任意のデータである。例えば、メタデータは、ファイルやディレクトリ名、ファイル作成時間、ファイルサイズ、ファイルの権限などのクライアントが見ることができる1つまたは2つ以上のファイルについての情報、および/または、インデックス構造などのクライアントが見ることができない1つまたは2つ以上のファイルおよび/またはファイルシステムについての情報であってもよい。もちろん、他の適切なメタデータ(例えばデータ、1つまたは2つ以上のファイル、1つまたは2つ以上のデータブロック、1つまたは2つ以上のデータ構造、1つまたは2つ以上のファイルシステム、ビットマップ等についての情報)が使用されてもよい。更新ログ110は、コミットサーバによって適用されなければならない操作を記述している複数のレコードを、有していてもよい。そのような情報は、公知のように、ファイルシステム108の操作に必要な一時情報である。例えば、ファイルサーバ112は、データブロックをブロックストア106に書き込んだ後、更新ログ110を、つまり、データブロックのコンテンツアドレスを、データがその一部であってそのオフセットにデータが配置されているファイルを記述している情報ばかりではなく、以下でさらに詳しく説明するタイムスタンプと、共に送信する。] 図1 図2
[0011] ファイルサーバ102は、クライアント104に結合されており、かつ、データ(例えば、情報、種類、ファイル等)の一時ストレージの位置を提供するように構成されている、コンピュータまたは他の装置であってもよい。そのため、ファイサーバ102は、ブロックストア106内に保存されている複数のデータブロックをキャッシュするブロックキャッシュ114と、メタデータ情報(たとえば、最近作られたファイル名)をキャッシュするメタデータキャッシュ116と、を有しているストレージおよび/またはメモリを有していてもよい。メタデータキャッシュ116の顕著な部分は、ファイルサーバ102によって最近書き込まれたデータブロックのコンテンツアドレスを保存するために使用される未コミットブロックテーブル118である。]
[0012] さらに、ファイルサーバ102は、クライアント104から受信したデータを複数のデータブロックの塊にして(たとえばデータブロックを生成して)、複数のデータブロックをブロックキャッシュ114に書き込む。つまり、ファイルサーバ102は、CAS内に保存ができるように、クライアントデータから複数のデータブロックを作る、および/または、データをグループ分けし、それらのデータブロックをブロックストア106に書き込む。ブロックストア106は、データブロックを以前に見たことがある(既知、保存されていた等)と認識して、そのコンテンツアドレスを返すか、データブロックを新しいブロックとして認識して、そのコンテンツアドレスを生成し、コンテンツアドレスを返す。ファイルサーバ102は、ファイル操作(たとえばクライアント104からの書き込み操作)を処理しながら、メタデータキャッシュ116内にキャッシュされているメタデータを修正する。生成された複数のデータブロックは、データブロックストア106にできるだけ素早く書き込まれるが、これは、書き込みの完了後に初めてデータブロックがブロックキャッシュ114から取り除くことができるからである。書き込みが完了したという情報と共に受信されることもあるコンテンツアドレスは、ブロックキャッシュ114から取り除かれたデータブロックを再度フェッチするために使用することができる。書き込み操作が、書き込みデータを有する全てのブロックのコンテンツアドレスばかりではなく操作のタイムスタンプと共に、更新ログ110に追加される。ファイルサーバ102が、コミットサーバ112から、このタイムスタンプと同じかより大きいタイムスタンプを備えているスーパーブロック(図2に関して以下で説明)を受け取るまで、複数のデータブロックのコンテンツアドレスは、未コミットブロックテーブル118に保持される。未コミットブロックテーブル118は、データブロックストア106に保存されているが、ファイルシステム108のバージョンにはまだ現れていない(たとえば、方法300に関して以下で説明するように、データブロックのアドレス情報は、コミットサーバ112によってファイルシステム108にまだ書き込まれていない)複数のデータブロックのコンテンツアドレスを保存している。ファイルシステム108の新しいバージョンが、コンテンツアドレスを含んでいる更新ログレコードの処理によって作られるまで、データブロックは、ファイルサーバ102上でファイルシステム108の古いバージョンを使用してアクセスすることができない。未コミットブロックテーブルを利用することによって、データブロックのコンテンツアドレスを容易に探して、クライアント104が要求すればデータブロックをフェッチすることができる。データブロックのメタデータを含んでいるファイルシステム108のバージョンが、いったんブロックストア106に書き込まれ、かつ、通知が、ファイルサーバ102によって受信されると、該当しているコンテンツアドレスが、未コミットブロックテーブル118から取り除かれることができる。] 図2
[0013] ブロックストア106は、CASシステムまたは他の適切なメモリおよび/またはストレージ装置であってもよい。少なくとも1つの実施形態において、ブロックストア106は、どちらも参照によって本明細書に援用される2008年1月31日に提出された米国特許出願第12/023,133号と、2008年1月31日に提出された米国特許出願第12/023,141号に記載されているように、クラスタベースの連想ブロックストレージ装置である。もちろん、他のアドレスベースのストレージ装置を利用することもできる。]
[0014] ブロックストア106は、ファイルシステム108として編成可能な複数のデータブロックを含んでいる。ファイルシステム108は、木構造をエミュレートし、かつ、図2に関して以下でさらに詳細に説明する、データ構造である。ブロックストア106は、図3と方法300とに関連して以下でより詳細に説明するように、メタデータのファイルシステム108への書き込みを促進する更新ログも有していてもよい。] 図2 図3
[0015] コミットサーバ112は、ファイルサーバ102と同様の構造を有していてもよいが、ファイルシステム108のメタデータを更新するために使用することができる。コミットサーバ112は、ファイルサーバ102から受信した操作(たとえば、特定の名前を有しているファイルを特定のディレクトリで作成、特定のファイルへの特定のオフセットでの書き込みに相当しているコンテンツアドレスの挿入等)を処理する。更新ログ110の全ての操作は、タイムスタンプに関連付けられており、コミットサーバ112は、操作を、減少しない順番で単調に適用する。コミットサーバ112は、ファイルシステム108の新規のバージョンを生成する前にメタデータを保存するためのコミットメタデータキャッシュ120を有している。メタデータキャッシュ116と同様に、コミットメタデータキャッシュ120は、メタデータ、および/または、データブロックストア106に保存されているデータブロックのコンテンツアドレスなどのデータブロック情報を保存する。定期的に(例えば、所定の間隔で、コミットメタデータキャッシュ120が特定の使用レベルに到達したときに等)、メタデータおよび/またはデータブロック情報のバッチは、ファイルシステム108の新しいバージョンを生成するために使用される。それから、コミットサーバ112は、ファイルシステム108の新しいバージョンをブロックストア106に保存して、コミットメタデータキャッシュ120を消去する。]
[0016] ファイルサーバ102とコミットサーバ112とは、ログレコード(例えば、所与の名前のファイルを指定されたディレクトリに作る動作を記述しているなど)とその他の制御メッセージを交換することによって通信する。実施形態によっては、ログレコードは、ファイルサーバ102とコミットサーバ112との間で直接送信される。同じまたは代替の実施形態では、ログレコードは、ブロックストア106または他の位置に保存可能な更新ログ110に書き込まれる、および/または、更新ログ110において検索されてもよい。コミットサーバ112は、ファイルシステム108の現在のバージョンが常に存在するように動作する。つまり、コミットサーバ112は、ファイルシステム108の新しいバージョンを生成するために、(例えば更新ログ110の)ログレコードを決定して処理する。]
[0017] ストレージ装置100は、ストレージ装置100の全体の動作を定義するコンピュータプログラム命令を実行することによってストレージ装置100の全体動作を制御する、プロセッサ(不図示)を有していてもよい。複数のコンピュータプログラム命令は、記憶装置(例えば磁気ディスク、データベース等)に保存する、および/または、複数のコンピュータプログラム命令の実行が必要なときにメモリにロードすることができる。したがって、本明細書で記述している方法300と500の方法ステップと、データ保存、データブロック生成、ファイルの読み取りおよび/または書き込み動作等のストレージ装置100の関連する機能を実行するアプリケーションは、メモリ内に保存されているコンピュータプログラム命令によって定義されており、コンピュータプログラム命令を実行するプロセッサによって制御されている。ストレージ装置100は、1つまたは2つ以上の中央処理装置、読み取り専用メモリ(ROM)装置、および/またはランダムアクセスメモリ(RAM)装置を有していてもよい。当業者には、実際の連想記憶ストレージ装置の実装は他の構成要素も有することができることと、図1のストレージ装置100はそのようなストレージ装置の複数の構成要素のいくつかを図示の便宜上高レベルで表示していることが理解できるであろう。] 図1
[0018] 本発明のいくつかの実施形態によれば、プログラム(例えばコントローラソフトウェア)の命令は、例えばROM装置からRAM装置へ、またはLANアダプタからRAM装置へのように、ファイルサーバ102、ブロックストア106、および/またはコミットサーバ112で読み取ることができる。プログラムの一連の命令の実行によって、方法300と500に関して前述した方法ステップのような1つまたは2つ以上の本明細書に記述されている方法ステップを、ストレージ装置100に実行させることができる。代替の実施形態において、本発明の処理の実装のために、ハードウェアによって実現されている回路または集積回路を、ソフトウェア命令の代わりに、または、それらと組み合わせて使用することができる。したがって、本発明の実施形態は、ハードウェア、ファームウェア、および/またはソフトウェアの特定の組み合わせには一切限定されていない。ブロックストア106は、ソフトウェアプログラムを実行して、本発明に従って、特に詳述した方法に従って動作するように構成可能なストレージ装置100用のソフトウェアを保存することができる。しかし、本明細書で記述している発明は、広範なプログラミング技法ばかりではなく汎用のハードウェアサブシステムまたは専用コントローラを使用して多くの様々な方法で実装できることが当業者には理解されるであろう。]
[0019] そのようなプログラムは、圧縮された、コンパイルされていない、および/または暗号化されている形式で保存することができる。プログラムはさらに、オペレーティングシステム、データベース管理システム、コントローラがコンピュータ周辺機器と接続できるようにするデバイスドライバ、他の装置/構成要素などの一般的に役立つプログラム要素を有している。適切な汎用プログラム要素が当業者には知られており、本明細書で詳細に記述する必要はない。]
[0020] 図2は、本発明の実施形態のファイルシステム108を示している。ファイルシステム108は、図1のストレージ装置100のブロックストア106と共に、および/または、その一部と共に使用される。ファイルシステム108は、木構造をエミュレーションするメモリ内で実現されるデータ構造である。少なくとも1つの実施形態において、ファイルシステム108は、情報(例えば、メタデータ、アドレス、コンテンツアドレス等)の効果的な挿入、検索および削除を可能にする方法でデータを表しているストレージ木である。少なくとも1つの実施形態において、ファイルシステム108は、imapおよび各inodeの編成について知られているB+ツリーを使用するが、任意の適切なツリーまたは他のデータ構造も使用することができる。] 図1 図2
[0021] 同じまたは代替の実施形態において、ファイルシステム108は、データブロック202(たとえば、前述のようにファイルサーバ102から受信したデータブロック)および/または関連する情報などのファイル、ディレクトリ、および/またはシンボリックリンクがinode204によって表されているUnix(登録商標)ライクな構造を有している。inode204は、データ、ファイル、他のデータ構造などについての基本情報(例えば、メタデータ、コンテンツ、アドレス等)を保存するそれ自体Unix(登録商標)ライクな構造内のデータ構造である。inode204は、inodeツリー206のルートブロックである。inodeツリー206は、B+木であって、データブロック202のアドレスを使用してデータブロック202へのマッピングを実現してもよい。これによって、可変サイズのデータブロック202を使用してクライアント104の大きなファイルを収容することができる。]
[0022] それに対して、複数のinode204の各々は、imap木210の一部であるimapブロック208内に個別のinode番号によって索引付けされている。imap木210は、imap212であるルートブロックを有しているB+木のようにそれ自体がデータ構造である。inode番号とデータブロック202のアドレスとの間の自動マッピングは存在しないため、imap212はそれらの間の変換を促進している。これは、ログ構造ファイルシステムや他の適切なファイルシステムと同様である。imap212は、imap木210を有しており、固定サイズの複数のimapブロック208に分割され、imap木210によってインデックスが付けられている有効な複数のinode番号と複数のinode204のアドレスの配列である。複数のinode204のマッピングとしてのimap212は、使用中のinode番号と、対応する複数のinode204の複数のコンテンツアドレスと、を追跡する。inodeの数が増加すると、そのコンテンツアドレスを保存するために、追加のinodeブロック208がimap 212に追加される。大きすぎるデータ構造を作成することを避けるために、他のUnix(登録商標)ライクなファイルシステムに存在しているようなinode番号を再使用する任意の戦略を採用することができる。]
[0023] imap木210のルート、imap212は、スーバーブロック214に保存されている。スーパーブロック214は、imap212を指すポインタ、ファイルシステム108の複数のパラメータ、およびファイルシステム108のバージョン番号が組み込まれているブロックである。以下でさらに詳しく説明するように、ファイルシステム108が複数のスーパーブロック214を有することになるように新しいスーパーブロックが書き込まれるたびに、ファイルシステム108の新規のバージョンが作られる。つまり、ファイルシステム108は、ストレージ装置110のコミットサーバ112によって書き込まれた、ファイルシステム108の各バージョンについてスーパーブロック214を有している。最新のスーパーブロック214は、最新の情報の検索に使用することができる。他のスーパーブロック214は、過去に存在していた時のファイルシステムの「スナップショット」を検索するために使用することができる。]
[0024] 動作時には、ストレージ装置110は、ディスクベースのファイルシステムと同様に、ファイルの書き込み(たとえば、データブロックをブロックストア106に保存する)と、メタデータの更新(例えばファイルシステム108のバージョンをブロックストア106に保存する)と、を非同期に処理する。データブロックの保存のたびに新しいファイルシステム108のバージョンを書き込む代わりに、ストレージ装置110は、ファイルサーバ102がブロックキャッシュ114および/またはメタデータキャッシュ116の情報をすぐに利用して、新しいファイルシステム108をブロックストア106に後で書き込むことができるようにする。そうすることで、ストレージ装置110は、ファイルシステム108の複数の更新となるはずだった物を、コミットサーバ112による1つのファイルシステム108の書き込みにまとめることができる。さらに、クライアント104からの個別の読み取りおよび/または書き込み動作サービスを行うのに必要な時間を減らすことに加えて、これによってファイルシステム108を更新するコストを償却することができる。ファイルシステム108の新しいバージョンの書き込みには、inode木204内の各ブロックと、従ってスーパーブロック214に加えてimap木の更新が必要なため、複数の更新をそのようにまとめることによって、inode木とimap木の上位レベルを書き換えなければならない回数が減少する。さらに、これによって、ファイルシステム108の各バージョンにタイムスタンプを付けるか、ノードに作成および/または更新時間を付けることができる。そのようなタイムスタンプによって、クライアント104および/またはストレージ装置100は、ファイルシステム108の以前のバージョンを検索し、したがって、データブロックストア106のデータブロックの以前のバージョンにアクセスすることができる。タイムスタンプは、単調に増加させることができる。実施形態によっては、タイムスタンプは単調に増加するが、実際の時間には基づいていない。]
[0025] 図3はストレージ装置100に情報を保存する方法300のフローチャートである。方法300の複数の方法ステップは、ストレージ装置100によって実行することができる。方法はステップ302から始まる。] 図3
[0026] ステップ304では、ファイルサーバ102において、データが、クライアント104から受信される。ステップ306において、データとメタデータとが、ファイルサーバ102によって、ブロックストア106から検索される。データは、ファイルシステム上での過去の操作に応じてデータブロックストア106に保存されている1つまたは2つ以上のデータブロックであってもよい。データブロックは、クライアント104によって要求される操作(例えばファイルの一部の上書き)を反映している新しい複数のブロックを生成するために使用できるように、ブロックストア106からフェッチすることができる。メタデータは、ディレクトリ、ファイルサイズ情報、ファイルの所有情報等を使用したinodeへのファイル名のマッピングを有している。さらに、メタデータは、クライアント104には見えないデータブロックコンテンツアドレスなどの、ファイルシステム108からの情報であってもよい。]
[0027] ステップ308において、1つまたは2つ以上のデータブロックが生成される。ここで、ステップ304でクライアント104から受信したデータが、ファイルサーバ102によって、データブロックの塊にされる。複数のデータブロックが、従来の方法を使用して、ファイルサーバ102によって生成される。つまり、クライアント102からのデータに基づいて、別々の量のデータの複数のブロックが、ブロックファイルサーバ102によって作られる。さらに、各データブロックのコンテンツアドレスと他の関連するメタデータとが、書き込み完了通知と共に、ファイルサーバ102によって得られる。]
[0028] ファイルサーバ102は、ステップ304でクライアント104から受信したデータを、ファイルシステム108内のinode204に関連付けられているバッファ(不図示)に蓄積する。クライアント104がファイルを開くときにファイルへのパスをクライアント104が提供すると、ファイルサーバ102は、このパスを使用して、inode204を検索し、クライアント104によるファイル上での以降の操作のためのコンテキストとしてそれを保持する。2つのブロックの境界は、同じデータの書き込みが同じブロックとなる可能性を増加させる区切りの点を見つけるために、クライアント102から受信したデータのコンテンツを検査することによって見出される。データブロックの境界が見つかると、その点までのバッファに保存されているデータは、新しいデータブロックを作るために使用される。バッファに残っているデータは、後続のデータブロックの全てまたは一部として使用される。実施形態によっては、メモリ消費を制限し、inodeバッファが限界なしに増大するのを防止するために、バッファされているデータの量の大局的な限界を採用することができる。]
[0029] ファイルサーバ102は、ブロックストア106が、ブロック書き込みを、ブロックのコンテンツアドレスを返すことによって確認するまで、ブロックキャッシュ114内に複数のデータブロックを保持する。コンテンツアドレスがいったん受信されると、ブロックは、ブロックキャッシュ114から取り除かれるが、これはコンテンツアドレスを使用してブロックを再度フェッチできるからである。]
[0030] ステップ310において、データブロックは、ブロックストア106に書き込まれ、複数のメタデータ操作が生成される。前述のように、ファイルサーバ102は、生成された複数のデータのブロックを、ブロックストア106に送信する。書き込みの結果修正する必要のある複数のデータブロックに関連しているあらゆるメタデータ操作(例えば、データブロックのコンテンツアドレス等)が、メタデータキャッシュ116に保存される。全てのメタデータ操作は、ファイルサーバ102によって、更新ログ110に記録される。メタデータ操作は、ブロックストア102および/またはファイルシステム108において実施される動作に関連している命令である。たとえば、データブロックが削除される場合、メタデータ操作は、データブロック(たとえば、図2のデータブロック202の1つ等)を削除するためのコミットサーバ112に対する命令である。もちろん、ファイルサーバ102からコミットサーバ112および/またはブロックストア106に送信される任意の適切な命令や操作を、メタデータ操作と見なしてもよい。] 図2
[0031] ブロックストア106は、1つまたは2つ以上のデータブロックの保存を確認し、データブロックを示しているコンテンツアドレスが、タイムスタンプ、inode番号、および新しく保存されたデータブロックに対応するバイト範囲と共に、未コミットブロックテーブル118に追加される。それから、ブロックキャッシュ114に保存されているデータブロックのコピーに、「クリーン」というマークが付けられる。つまり、それからコピーは、ブロックキャッシュ114から取り除く(例えば破棄する)ことができるとマークされることになる。]
[0032] ステップ312において、コミットサーバ112は、更新ログ110からメタデータ操作を検索する。実施形態によっては、更新ログ110は、ブロックストア106に保存されている。他の実施形態においては、コミットサーバ112は、メタデータ操作を直接ファイルサーバ102から検索する。]
[0033] コミットサーバ112が、メタデータ操作のバッチおよび/または複数のコンテンツアドレスを検索した後、コミットサーバは、ステップ314において、ファイルシステム108のバージョンを生成する。つまり、コミットサーバ112は、所定の量のメタデータが保存されるまで、複数のデータブロックを表しているメタデータを、コミットメタデータキャッシュ120に保存することができる。それから、コミットサーバ112は、コミットメタデータキャッシュ120内に保存されている全てのメタデータ操作を一括して処理して、ファイルシステム108の新しいバージョンを生成することができる。このようにして、コミットサーバ112は、ファイルシステム108の新しいバージョンを生成しなければならない回数を減少させる。]
[0034] 公知のように、コミットサーバは、inode206のinode木204内のデータブロック202に関する情報をまず保存し、それからimap212内のimap木210のinodeブロック208を通過してルート(例えばスーパーブロック214)までの経路を進むことによって、ボトムアップでファイルシステム108の新しいバージョンを生成することもできる。最後に、ルートブロック、つまりスーパーブロック214の新しいバージョンに加えて、このバージョンのファイルシステム108に寄与した最新のログレコードを示しているタイムスタンプが生成される。このようにして、各バッチ内の、したがってファイルシステム108の生成された各バージョン内のメタデータがわかるようになり、必要に応じてクライアント104および/またはストレージ装置100によって呼び出すことができる。]
[0035] ステップ316では、ファイルシステム108の新しく生成されたバージョンが、ブロックストア106内に保存される。ファイルシステム108の新しいバージョンは、現在の該当しているバージョンとして以前のバージョンを置き換えるが、ファイルシステム108の1つまたは2つ以上の以前のバージョンを必ずしも上書きするわけではない。このように、ファイルシステム108の以前の複数のバージョンは、それらのそれぞれのタイムスタンプに従ってアクセスすることができる。したがって、古いデータブロックのアドレス情報を検索することもできる。]
[0036] ステップ318では、ファイルサーバ102は、ファイルシステム108のバージョンとタイムスタンプとを確定するために、ファイルシステム108にアクセスする。それから、ファイルサーバ102は、タイムスタンプを使用して、メタデータキャッシュ116内の「ダーティ」なメタデータを「クリーン」とマークすることができる。この情報は、図5に関して以下で説明するメタデータクリーン化方法500と共に使用することができる。] 図5
[0037] 方法300はステップ320で終了する。当然のことながら、方法300のいくつかの方法ステップは、実施的に同時に実行可能である。例えば、ファイルサーバ104は、ステップ308で他のデータが複数のデータブロックを生成するために使用されるのと実質的に同時に、ステップ304でクライアント104からデータを受信してもよい。同様に、複数のデータブロックを、コミットサーバ112がブロックストア106でファイルシステム108のより新しいバージョンを生成し保存するのと実質的に同時に、ステップ310でブロックストア106に保存することができる。このように、ストレージ装置100は、より素早く効果的にストレージとアドレス情報を更新することができる。]
[0038] 図4はメタデータキャッシュ116内に保存されているような典型的なメタデータ木400を示している。メタデータ木400は、ブロックストア106内のファイルシステム108を反映しており、構造的に同様なデータ構造である。言い換えると、メタデータ木400は、本出願を通して説明したファイルシステムのデータ構造を記述する別な方法である。メタデータ木400に含まれている情報は、方法300のステップ306で検索されたようなファイルシステム108内のメタデータのコピーである。図4のメタデータオブジェクト402〜416は、各々関連付けられているタイムスタンプを有している。つまり、各メタデータオブジェクトは、単調カウンタである関連付けられている相対的な年齢を有している。最も大きい、関連付けられているカウンタ番号は、最近割り当てられた(例えば、最も新しい)情報に対応している。このように、より大きなカウンタ番号を備えているメタデータオブジェクトは、より小さいカウンタ番号を備えより古いつまりより最近ではないと考えられるメタデータオブジェクトよりも、新しいと考えることができる。] 図4
[0039] メタデータ木400は、スーパーブロック402を有している。スーパーブロック402には、図2に関して前述したようにブロックストア106内のファイルシステム108のバージョンおよび/または対応しているバージョンのタイムスタンプに対応しているバージョン番号および関連付けられているタイムスタンプが割り当てられている。典型的なメタデータ木400において、スーパーブロック402は、37というバージョン番号と、関連付けられている779というタイムスタンプと、を有している。] 図2
[0040] ファイルシステム108と同様に、メタデータ木400は、1つまたは2つ以上のimapブロック404、406を有している。imapブロック404と406とは、797と805というそれぞれの関連付けられているタイムスタンプを有している。つまり、imapブロック404と406から延びている木の分岐の最新の情報は、タイムスタンプ797と805によってそれぞれ示されている。もちろん、スーパーブロック402は、それに依存している任意の数のimapブロックを有していてもよい。]
[0041] imapブロック404と406とは、1つまたは2つ以上のinodeにマップされていてもよい。例えば、imapブロック404は、各々がそれぞれの787と792というタイムスタンプを有しているinode408と410にマッピングされていてもよい。同様に、imapブロック406は、各々がそれぞれの805と794というタイムスタンプを有しているinode412と414にマッピングされていてもよい。もちろん、任意の数のimapブロックおよび/またはinodeを使用することができる。各オブジェクト(inode、imapブロック、スーパーブロック等)は、メタデータ木400内の依存している任意のオブジェクトの最新のタイムスタンプと少なくとも同じほど新しいタイムスタンプを有している。]
[0042] メタデータ木400は、スーパーブロック416などの新しいバージョンのスーパーブロックによって更新することができる。スーパーブロック416には、図2に関して前述したように、ブロックストア106内のファイルシステム108のバージョンおよび/または対応しているバージョンのタイムスタンプに対応しているバージョン番号とタイムスタンプとが割り当てられている。図4の典型的な実施形態では、スーパーブロック416は、38というバージョン番号と802というタイムスタンプとを有している。その結果、スーパーブロック416は、スーパーブロック402よりも新しいと考えることができる。] 図2 図4
[0043] メタデータ木400は、単なる例であって、ストレージ装置100と共に使用されるデータ構造の単純化版である。メタデータ木400は、方法500の複数の方法ステップを記述する場合に、単純化のために単純に分岐している木として表されている。]
[0044] 図5はファイルサーバ102でメタデータを保持する方法500のフローチャートを示している。ファイルサーバ102内にメタデータを保持することは、メタデータキャッシュ116内で図4のメタデータ木400などのメタデータ木を保持することを含んでいる。方法500は、メタデータキャッシュ116を「クリーン化」つまり更新することと考えることができる。] 図4 図5
[0045] メタデータオブジェクト(例えばメタデータオブジェクト402〜416)は、クリーン、ダーティ、または古いと指定されている。クリーンなオブジェクトは、かつて修正されたことがなく、前述の方法300の方法ステップ306でファイルシステム108から検索されたオブジェクトであり、いずれかの時間にメタデータキャッシュ116から廃棄することができる。ダーティオブジェクトは、タイムスタンプが最新のスーパーブロックのタイムスタンプよりも大きいメタデータオブジェクトである。ダーティオブジェクトは破棄されないこともある。ダーティオブジェクトの親(例えばダーティオブジェクトが依存しているオブジェクト)は、ダーティでなくてはならない。古いオブジェクトは、タイムスタンプが最新のスーパーブロックのタイムスタンプよりも小さいメタデータオブジェクトである。古いオブジェクトは、いつ廃棄してもよい。ファイルサーバは、ブロックに保存されているコンテンツアドレスの1つを使用する場合、古いブロックをブロックストア106から再度フェッチしなければならないが、古いオブジェクトは、いくつかの現在のコンテンツアドレスを含んでいてもよい。古いブロックの新しくそして更新されているバージョンは、更新されたブロックの子を書き込んでいるときにコミットサーバ112によって生成された異なるコンテンツアドレスを有していてもよい。古いオブジェクトの親は、古いまたはダーティであって、他のダーティな子を有していてもよい。]
[0046] 方法500はステップ502から始まる。]
[0047] ステップ504において、メタデータ操作が、メタデータキャッシュ116で受信される。そのようなメタデータ操作は、図4のスーパーブロック416のようなスーパーブロックの新しいバージョンを有していてもよい。スーパーブロックの新しいバージョンは、ファイルシステム108のコミットサーバ112によるボトムアップの書き込みに基づいていてもよい。コミットサーバ112は、タイムスタンプの順に、まとめて、このメタデータを処理する。コミットサーバ112は、このまとまりの中のメタデータのうちの最も新しいメタデータのタイムスタンプであるスーパーブロック(たとえばルートブロック)タイムスタンプを、このまとまりに対して生成する。コミットサーバ112は、前述のようにファイルシステム108の木に従って、ファイルシステム108の複数の修正されたブロックを、ボトムアップから書き込む。ファイルシステム108のスーパーブロックは、必ず最後に書き込まれるブロックであり、適切な時間に(例えばフェッチされたときに)メタデータキャッシュ116に渡される。] 図4
[0048] ステップ506で、受け取ったスーパーブロックのタイムスタンプに基づいて、必要に応じて、メタデータオブジェクトは古いと指定される。つまり、受信したスーパーブロックのタイムスタンプよりも古いどのようなダーティなオブジェクトも古いと指定される。]
[0049] 図4の典型的な実施形態において、imapブロック404と406とinode408〜414は、全て初期状態でダーティであるが、それは、それらのタイムスタンプがスーパーブロック402の初期のタイムスタンプよりも新しい(たとえば大きい)からである。そのため、タイムスタンプが802であるスーパーブロック416が受信されたときに、imapブロック404は古いと指定されるが、それはimapブロック404がスーパーブロック416よりも古い(たとえば小さい)タイムスタンプ(797)を有しているからである。同様に、inode408、410、および414も古いと指定されるが、これは、それらのタイムスタンプもスーパーブロック416のタイムスタンプよりも古いからである。] 図4
[0050] ステップ508では、複数の古いメタデータオブジェクトが破棄される。古いメタデータオブジェクトは、メタデータ木(例えばメタデータ木400)に従ってトップダウンで破棄される。複数のメタデータオブジェクトをトップダウンで破棄することで、破棄されたオブジェクトが、その古い親から得られた古いコンテンツアドレスを使用してファイルシステム108から再度フェッチされないことが保証される。その結果、古い子は、その親をまず破棄しないで破棄することはできない。メタデータオブジェクトは、木の依存性のチェーンに従って破棄される。典型的なメタデータ木400において、スーパーブロック402がまず破棄され、それに続いて、imapブロック404と406が破棄され、最後にinode 408〜414が破棄される。]
[0051] 図4の典型的な実施形態において、imapブロック404とその子のinode408と410は古く、破棄され、inode414も、ステップ506で判断されたように古いが、その親であるimapブロック406は古くないため、破棄することができない。] 図4
[0052] 実施形態によっては、破棄されたメタデータオブジェクトは置き換えられる。そのような置き換えは、任意である。たとえば、ファイルをディレクトリから取り除いた後、そのディレクトリではさらなる操作は実行されない。したがって、そのディレクトリを保存し続ける必要はない。破棄されたメタデータオブジェクトは、ファイルシステム108の複数のバージョンによって置き換えられる。図4の典型的な実施形態では、スーパーブロック406に対応しているimapブロック404とinode408と410のより新しいバージョンが、ファイルシステム108から検索され、メタデータキャッシュ116に保存される。] 図4
[0053] 方法500はステップ510で終了する。]
[0054] 前述の発明を実施するための最良の形態は、あらゆる観点において、例示的で典型的であって、限定的ではないと理解されるべきであり、本明細書において開示している本発明の範囲は、発明を実施するための最良の形態から定められるのではなく、むしろ、特許法によって認められる全範囲に従って解釈されるように特許請求の範囲から定められる。当然、本明細書で示し詳述した実施形態は、本発明の原理を単に例示しており、当業者は本発明の範囲と精神から逸脱することなくさまざまな修正を実装することができる。当業者は、本発明の範囲と精神から逸脱することなく、様々な他の特徴の組み合わせを実装することができる。]
权利要求:

請求項1
ファイルサーバを使用してデータを1つまたは2つ以上のデータのブロックの塊にし、前記ファイルサーバを使用してファイルシステムの複数のメタデータ操作を生成し、前記1つまたは2つ以上のデータのブロックをブロックストアに保存し、コミットサーバを使用して前記複数のメタデータ操作を検索し、前記コミットサーバを使用して前記複数のメタデータ操作と前記1つまたは2つ以上のデータのブロックとに基づいてデータ構造を生成し、前記データ構造を前記ブロックストアに保存することを含む、情報をストレージシステムに保存する方法。
請求項2
前記複数のメタデータ操作を更新ログに保存することをさらに有し、前記コミットサーバを使用して前記複数のメタデータ操作を検索することは、前記複数のメタデータ操作を前記更新ログから検索することを有する、請求項1に記載の方法。
請求項3
前記1つまたは2つ以上のデータのブロックを前記ブロックストアに保存することと、前記データ構造を前記ブロックストアに保存することとは、実質的に同時に起こる、請求項1に記載の方法。
請求項4
前記ファイルサーバでクライアントからデータを受信することをさらに有し、前記ファイルサーバを使用して前記データを前記1つまたは2つ以上のデータのブロックの塊にすることは、前記クライアントから受信した前記データを前記1つまたは2つ以上のデータのブロックに分離することを有する、請求項1に記載の方法。
請求項5
前記ファイルサーバを使用して、前記データを前記1つまたは2つ以上のデータのブロックの塊にすることと前記複数のメタデータ操作を生成することとは、前記生成された複数のメタデータ操作にタイムスタンプを関連付けることをさらに有し、前記複数のメタデータ操作を前記ファイルサーバに保存することと、前記検索された複数のメタデータ操作に関連付けられている1つまたは2つ以上の前記タイムスタンプの少なくとも一部に基づいて、前記ファイルサーバに保存されているメタデータを、前記データ構造のバージョンとして保存されているメタデータでクリーンにすることと、を有する、請求項2に記載の方法。
請求項6
前記コミットサーバを使用して前記メタデータを有する前記データ構造を生成することは、前記検索された複数のメタデータ操作に関連付けられている前記1つまたは2つ以上のタイムスタンプを検索することと、前記検索された複数のメタデータ操作に基づいて、メタデータキャッシュ内のメタデータを修正することと、前記複数のメタデータ操作を1つにまとめることと、前記検索されたメタデータに関連付けられている前記1つまたは2つ以上のタイムスタンプの少なくとも一部に基づく前記メタデータを前記データ構造のバージョンとして保存することと、を有する、請求項2に記載の方法。
請求項7
データを複数のデータのブロックの塊にし、複数のメタデータ操作を生成するように構成されているファイルサーバと、前記複数のデータのブロックを保存するように構成されているメモリと、前記複数のメタデータ操作を検索し、前記複数のメタデータ操作を示しているデータ構造を生成し、前記データ構造を前記メモリ内に保存するように構成されているコミットサーバと、を有する、データを保存するシステム。
請求項8
前記複数のメタデータ操作を前記ファイルサーバから検索して、前記複数のメタデータ操作を前記コミットサーバに渡すように構成されている更新ログさらに有する、請求項7に記載のシステム。
請求項9
関連付けられているタイムスタンプと、関連付けられているタイムスタンプを有している1つまたは2つ以上のメタデータオブジェクトと、を有している第1のスーパーブロックを有するファイルサーバでメタデータ構造を保持する方法であって、前記第1のスーパーブロックのカウンタ番号よりも高いカウンタ数を有する関連付けられているタイムスタンプを備えている第2のスーパーブロックを受信し、1つまたは2つ以上のメタデータオブジェクトの少なくとも1つを、前記第2のスーパーブロックの前記タイムスタンプと、1つまたは2つ以上の依存メタデータオブジェクトのタイムスタンプと、に基づいて、古くなったと指定し、古くなったと指定された前記1つまたは2つ以上のメタデータオブジェクトを破棄すること、を有する方法。
类似技术:
公开号 | 公开日 | 专利标题
US9760579B2|2017-09-12|File cloning and de-cloning in a data storage system
US10474631B2|2019-11-12|Method and apparatus for content derived data placement in memory
US10289545B2|2019-05-14|Hybrid checkpointed memory
US9646024B2|2017-05-09|Map-reduce ready distributed file system
EP3047397B1|2019-11-06|Mirroring, in memory, data from disk to improve query performance
EP3047400B1|2018-12-12|Multi-version concurrency control on in-memory snapshot store of oracle in-memory database
CN105630409B|2020-04-07|使用存储器内阵列和盘上页结构的双重数据存储
US10067958B2|2018-09-04|Supporting transient snapshot with coordinated/uncoordinated commit protocol
US10031672B2|2018-07-24|Snapshots and clones in a block-based data deduplication storage system
US9519575B2|2016-12-13|Conditional iteration for a non-volatile device
US9146877B2|2015-09-29|Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
US9275095B2|2016-03-01|Compressing a multi-version database
US9778873B2|2017-10-03|Maintaining versions of data in solid state memory
US9311015B2|2016-04-12|Storage system capable of managing a plurality of snapshot families and method of operating thereof
US20180004764A1|2018-01-04|Efficient data synchronization for storage containers
KR101994491B1|2019-06-28|데이터 중복제거를 위한 백업 및 복원 전략
Kim et al.2014|Resolving journaling of journal anomaly in android i/o: Multi-version b-tree with lazy split
EP2476055B1|2020-01-22|Apparatus, system, and method for caching data on a solid-state storage device
US8661068B1|2014-02-25|Managing global metadata caches in data storage systems
US8010493B2|2011-08-30|Systems and methods for a snapshot of data
US20140279877A1|2014-09-18|Transaction-Safe Fat File System Improvements
US8612722B2|2013-12-17|Determining an end of valid log in a log of write records
US8626717B2|2014-01-07|Database backup and restore with integrated index reorganization
US20160147811A1|2016-05-26|Database Lockless Index for Accessing Multi-Version Concurrency Control Data
US7882071B2|2011-02-01|Systems and methods for a snapshot of data
同族专利:
公开号 | 公开日
US20090228511A1|2009-09-10|
US7747663B2|2010-06-29|
EP2252950A1|2010-11-24|
WO2009110912A1|2009-09-11|
CN102016852B|2013-03-27|
CA2717068A1|2009-09-11|
CA2717068C|2014-12-16|
EP2252950A4|2012-07-25|
CN102016852A|2011-04-13|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
JP2007200029A|2006-01-26|2007-08-09|Mitsubishi Electric Corp|ファイル複製システム|JP2016118860A|2014-12-19|2016-06-30|富士通株式会社|ファイルシステム、ファイルシステムの制御方法、および、ファイルシステムの制御プログラム|US5897661A|1997-02-25|1999-04-27|International Business Machines Corporation|Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information|
US6807632B1|1999-01-21|2004-10-19|Emc Corporation|Content addressable information encapsulation, representation, and transfer|
US6917949B1|2000-08-30|2005-07-12|International Business Machines Corporation|Temporary lobs directory management|
US7010721B2|2003-09-29|2006-03-07|International Business Machines Corporation|File system journal management|
US7133963B2|2003-12-03|2006-11-07|International Business Machines Corporation|Content addressable data storage and compression for semi-persistent computer memory|
US20060053159A1|2004-09-07|2006-03-09|International Business Machines Corporation|Exploiting metadata for performing structure-oriented operations on content-specific data representations|
US20060224846A1|2004-11-05|2006-10-05|Amarendran Arun P|System and method to support single instance storage operations|
AR052083A1|2005-01-07|2007-02-28|Thomson Global Resources|Sistemas ,metodos y software para carga distribuida de bases de datos|
BRPI0603676B1|2005-08-31|2019-01-15|Sony Corp|information processing device for performing high speed video playback, non-transient information recording medium, data structure, information recording medium manufacturing device, information processing method, method for manufacturing information recording medium , and, computer readable media|
US7840618B2|2006-01-03|2010-11-23|Nec Laboratories America, Inc.|Wide area networked file system|
US7676514B2|2006-05-08|2010-03-09|Emc Corporation|Distributed maintenance of snapshot copies by a primary processor managing metadata and a secondary processor providing read-write access to a production dataset|
US7653832B2|2006-05-08|2010-01-26|Emc Corporation|Storage array virtualization using a storage block mapping protocol client and server|US9767120B2|2008-01-16|2017-09-19|Hitachi Data Systems Engineering UK Limited|Multi-way checkpoints in a data storage system|
US8959199B2|2008-03-18|2015-02-17|Reduxio Systems Ltd.|Network storage system for a download intensive environment|
US8234317B1|2008-08-06|2012-07-31|Netapp, Inc.|Auto-committing files to immutable status based on a change log of file system activity|
US9176963B2|2008-10-30|2015-11-03|Hewlett-Packard Development Company, L.P.|Managing counters in a distributed file system|
US9807468B2|2009-06-16|2017-10-31|Microsoft Technology Licensing, Llc|Byte range caching|
US8478799B2|2009-06-26|2013-07-02|Simplivity Corporation|Namespace file system accessing an object store|
ES2548194T3|2009-06-26|2015-10-14|Simplivity Corporation|Indexación escalable en una memoria de acceso no uniforme|
US9772791B2|2009-08-27|2017-09-26|International Business Machines Corporation|Dispersed storage processing unit and methods with geographical diversity for use in a dispersed storage system|
US9449007B1|2010-06-29|2016-09-20|Emc Corporation|Controlling access to XAM metadata|
EP2470997A4|2010-09-02|2013-05-01|Nec Lab America Inc|Content addressable storage with reduced latency|
US20120078966A1|2010-09-29|2012-03-29|International Business Machines Corporation|File System With Content Identifiers|
US8375164B2|2010-10-15|2013-02-12|Nec Laboratories America, Inc.|Content addressable storage with reduced latency|
US9792104B2|2010-11-05|2017-10-17|FedEx Supply Chain Logistics & Electronics, Inc.|System and method for flashing a wireless device|
US9465702B2|2010-11-05|2016-10-11|Atc Logistics & Electronics, Inc.|System and method for auditing removal of customer personal information on electronic devices|
KR101585146B1|2010-12-24|2016-01-14|주식회사 케이티|오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체|
JP5626034B2|2011-03-07|2014-11-19|日本電気株式会社|ファイルシステム|
US9436748B2|2011-06-23|2016-09-06|Simplivity Corporation|Method and apparatus for distributed configuration management|
US8930330B1|2011-06-27|2015-01-06|Amazon Technologies, Inc.|Validation of log formats|
US9659023B2|2013-11-21|2017-05-23|Upthere, Inc.|Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system|
US9183212B2|2012-01-26|2015-11-10|Upthere, Inc.|Representing directory structure in content-addressable storage systems|
US9052824B2|2012-01-26|2015-06-09|Upthere, Inc.|Content addressable stores based on sibling groups|
CN103294675B|2012-02-23|2018-08-03|上海盛大网络发展有限公司|一种分布式存储系统中的数据更新方法及装置|
US9032183B2|2012-02-24|2015-05-12|Simplivity Corp.|Method and apparatus for content derived data placement in memory|
US8868520B1|2012-03-01|2014-10-21|Netapp, Inc.|System and method for removing overlapping ranges from a flat sorted data structure|
US9489827B2|2012-03-12|2016-11-08|Cisco Technology, Inc.|System and method for distributing content in a video surveillance network|
US9049349B2|2012-05-16|2015-06-02|Cisco Technology, Inc.|System and method for video recording and retention in a network|
US8762353B2|2012-06-13|2014-06-24|Caringo, Inc.|Elimination of duplicate objects in storage clusters|
US9104560B2|2012-06-13|2015-08-11|Caringo, Inc.|Two level addressing in storage clusters|
US8799746B2|2012-06-13|2014-08-05|Caringo, Inc.|Erasure coding and replication in storage clusters|
US9031912B1|2012-06-25|2015-05-12|Kip Cr P1 Lp|System, method and computer program product for controlling file migration in archiving systems|
CN103049539A|2012-12-25|2013-04-17|华为技术有限公司|一种文件系统中文件数据的存储方法及其装置|
US9514007B2|2013-03-15|2016-12-06|Amazon Technologies, Inc.|Database system with database engine and separate distributed storage service|
US9501501B2|2013-03-15|2016-11-22|Amazon Technologies, Inc.|Log record management|
US9672237B2|2013-03-15|2017-06-06|Amazon Technologies, Inc.|System-wide checkpoint avoidance for distributed database systems|
US10180951B2|2013-03-15|2019-01-15|Amazon Technologies, Inc.|Place snapshots|
US10747746B2|2013-04-30|2020-08-18|Amazon Technologies, Inc.|Efficient read replicas|
US9317213B1|2013-05-10|2016-04-19|Amazon Technologies, Inc.|Efficient storage of variably-sized data objects in a data store|
US9760596B2|2013-05-13|2017-09-12|Amazon Technologies, Inc.|Transaction ordering|
US9208032B1|2013-05-15|2015-12-08|Amazon Technologies, Inc.|Managing contingency capacity of pooled resources in multiple availability zones|
US10303564B1|2013-05-23|2019-05-28|Amazon Technologies, Inc.|Reduced transaction I/O for log-structured storage systems|
US9305056B1|2013-05-24|2016-04-05|Amazon Technologies, Inc.|Results cache invalidation|
US9047189B1|2013-05-28|2015-06-02|Amazon Technologies, Inc.|Self-describing data blocks of a minimum atomic write size for a data store|
US9400819B2|2013-06-07|2016-07-26|Dell Products, Lp|Updating object attributes in a lock-coupled namespace traversal|
US9043576B2|2013-08-21|2015-05-26|Simplivity Corporation|System and method for virtual machine conversion|
US9507843B1|2013-09-20|2016-11-29|Amazon Technologies, Inc.|Efficient replication of distributed storage changes for read-only nodes of a distributed database|
US9280591B1|2013-09-20|2016-03-08|Amazon Technologies, Inc.|Efficient replication of system transactions for read-only nodes of a distributed database|
US9519664B1|2013-09-20|2016-12-13|Amazon Technologies, Inc.|Index structure navigation using page versions for read-only nodes|
US10216949B1|2013-09-20|2019-02-26|Amazon Technologies, Inc.|Dynamic quorum membership changes|
US9460008B1|2013-09-20|2016-10-04|Amazon Technologies, Inc.|Efficient garbage collection for a log-structured data store|
US9552242B1|2013-09-25|2017-01-24|Amazon Technologies, Inc.|Log-structured distributed storage using a single log sequence number space|
US10223184B1|2013-09-25|2019-03-05|Amazon Technologies, Inc.|Individual write quorums for a log-structured distributed storage system|
US9699017B1|2013-09-25|2017-07-04|Amazon Technologies, Inc.|Dynamic utilization of bandwidth for a quorum-based distributed storage system|
US10387399B1|2013-11-01|2019-08-20|Amazon Technologies, Inc.|Efficient database journaling using non-volatile system memory|
US9760480B1|2013-11-01|2017-09-12|Amazon Technologies, Inc.|Enhanced logging using non-volatile system memory|
US9880933B1|2013-11-20|2018-01-30|Amazon Technologies, Inc.|Distributed in-memory buffer cache system using buffer cache nodes|
US9223843B1|2013-12-02|2015-12-29|Amazon Technologies, Inc.|Optimized log storage for asynchronous log updates|
US9483481B2|2013-12-06|2016-11-01|International Business Machines Corporation|Files having unallocated portions within content addressable storage|
US9495373B2|2013-12-06|2016-11-15|International Business Machines Corporation|File versions within content addressable storage|
US10452484B2|2014-05-15|2019-10-22|Carbonite, Inc.|Systems and methods for time-based folder restore|
WO2015178944A1|2014-05-23|2015-11-26|Hewlett-Packard Development Company, L.P.|Using location addressed storage as content addressed storage|
US10303663B1|2014-06-12|2019-05-28|Amazon Technologies, Inc.|Remote durable logging for journaling file systems|
US9501487B1|2014-06-30|2016-11-22|Emc Corporation|Change tree incremental backup|
CN104156326A|2014-08-04|2014-11-19|浪潮电子信息产业有限公司|一种实现数据一致性的方法|
JP5991699B2|2014-08-08|2016-09-14|インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation|情報処理装置、情報処理システム、バックアップ方法、およびプログラム|
US10050832B2|2014-09-19|2018-08-14|Sybase 365, Inc.|Server clustering in mobile computing environment|
US10496313B2|2014-09-22|2019-12-03|Hewlett Packard Enterprise Development Lp|Identification of content-defined chunk boundaries|
WO2016048331A1|2014-09-25|2016-03-31|Hewlett Packard Enterprise Development Lp|Storage of a data chunk with a colliding fingerprint|
CN106155846B|2015-04-15|2019-06-28|伊姆西公司|对块对象执行批量故障回复的方法和装置|
US10476752B2|2016-04-04|2019-11-12|Nec Corporation|Blue print graphs for fusing of heterogeneous alerts|
US9645755B2|2015-05-21|2017-05-09|Dell Products, L.P.|System and method for copying directory structures|
US10560544B2|2015-08-25|2020-02-11|Box, Inc.|Data caching in a collaborative file sharing system|
US10303458B2|2016-09-29|2019-05-28|Hewlett Packard Enterprise Development Lp|Multi-platform installer|
US10528440B2|2016-11-28|2020-01-07|Sap Se|Metadata cataloging framework|
US10417202B2|2016-12-21|2019-09-17|Hewlett Packard Enterprise Development Lp|Storage system deduplication|
CN107229427B|2017-06-22|2019-10-18|上海七牛信息技术有限公司|一种文件存储方法、系统及计算机存储介质|
US10700711B1|2017-11-03|2020-06-30|Caringo Inc.|Multi-part upload and editing of erasure-coded objects|
US20190205554A1|2017-12-28|2019-07-04|Dropbox, Inc.|File system authentication|
US10587454B2|2018-01-30|2020-03-10|Hewlett Packard Enterprise Development Lp|Object counts persistence for object stores|
CN111427966B|2020-06-10|2020-09-22|腾讯科技(深圳)有限公司|数据库事务处理方法、装置及服务器|
法律状态:
2012-10-17| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121016 |
2013-03-21| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130319 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]